package com.tc.quartz.frame.base;

import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 公用Service接口
 * @author yongjin.ye
 * 
 */
public abstract interface IBaseService {

	/**
	 * 子类设置此Dao
	 * @return
	 */
	public abstract IBaseDao getBaseDao();

	/**
	 * 插入一个对象
	 * @param object
	 * @return
	 */
	public int insert(Object object);

	/**
	 * 更新一个对象
	 * @param object
	 * @return
	 */
	public int update(Object object);

	/**
	 * 删除一个对象
	 * @param object
	 * @return
	 */
	public int delete(Object object);

	/**
	 * 选择对象
	 * @param key
	 * @return
	 */
	public <T> T getById(Object object);

	/**
	 * 统计总数
	 * @param object
	 * @return
	 */
	public int getCount(Object object);

	/**
	 * 普通查询
	 * @param <T>
	 * @param object
	 * @return
	 */
	public <T> List<T> select(Object object);

	/**
	 * 分页查询
	 */
	public <T> PageInfo<T> getPageList(Object obj, int pageNum, int pageSize) ;

	/**
	 * 分页查询
	 */
	public <T> PageInfo<T> getPageList(Object obj, int pageNum, int pageSize, String orderBy) ;

}
